<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>09-原型ocnstructor</title>
</head>

<body>
  <script>
    function Star(uname, age) {
      this.uname = uname;
      this.age = age;
    }

    // Star.prototype.sing = function () {
    //   console.log("我会唱歌");
    // }
    // Star.prototype.movie = function () {
    //   console.log("我会演电影");
    // }

    // 在很多情况下，如果我么修改原来的原型对象，给原型对象赋值的是一个对象，我们需要手动的利用constructor这个属性来指回原来的构造函数
    Star.prototype = {
      // 指回
      constructor: Star,
      sing: function () {
        console.log("唱个歌");
      },

      movie: function () {
        console.log("演个电影");
      }

    }

    var ldh = new Star('刘德华', 32);
    var zxy = new Star('张学友', 42);

    // constructor
    console.log(Star.prototype);
    console.log(ldh.__proto__);

    // 对象指向的够赞函数
    console.log(Star.prototype.constructor);
    console.log(ldh.__proto__.constructor);

    // Star的原型对象里面的__proto__指向 Object原型对象
    console.log(Star.prototype.__proto__);

  </script>
</body>

</html>